package demo2;

/**
 * 具体实现：笛卡尔坐标系（直角坐标系）
 */
public class CartesianSystem implements CoordinateSystem {
    @Override
    public void draw(String shapeName, double... params) {
        // 校验参数数量（矩形/椭圆均需4个参数：x1,y1,x2,y2）
        if (params.length != 4) {
            throw new IllegalArgumentException("笛卡尔坐标系需4个参数：x1,y1,x2,y2");
        }
        double x1 = params[0], y1 = params[1], x2 = params[2], y2 = params[3];

        // 计算图形实际尺寸（适配矩形/椭圆）
        double width = Math.abs(x2 - x1);
        double height = Math.abs(y2 - y1);
        String position = String.format("左上角(%.1f,%.1f)，右下角(%.1f,%.1f)", x1, y1, x2, y2);

        // 输出绘制信息（模拟绘制，无文件操作）
        System.out.printf("【笛卡尔坐标系】绘制%s：%s，宽度%.1f，高度%.1f%n",
                shapeName, position, width, height);
    }
}